package org.jix.gbook.user.biz.service;

import org.jix.framework.common.response.Response;
import org.jix.gbook.user.biz.model.vo.UpdateUserInfoReqVO;
import org.jix.gbook.user.dto.req.FindUserByIdReqDTO;
import org.jix.gbook.user.dto.req.FindUserByPhoneReqDTO;
import org.jix.gbook.user.dto.req.RegisterUserReqDTO;
import org.jix.gbook.user.dto.req.UpdateUserPasswordReqDTO;
import org.jix.gbook.user.dto.resp.FindUserByIdRspDTO;
import org.jix.gbook.user.dto.resp.FindUserByPhoneRspDTO;

/**
 * @author stark
 * @date 2025/6/21 12:45
 * @description 用户业务接口
 **/
public interface UserService {

    /**
     * 更新用户信息
     * @param updateUserInfoReqVO
     * @return
     */
    Response<?> updateUserInfo(UpdateUserInfoReqVO updateUserInfoReqVO);

    /**
     * 用户注册
     * @param registerUserReqDTO
     * @return
     */
    Response<Long> register(RegisterUserReqDTO registerUserReqDTO);

    /**
     * 根据手机号查询用户密码
     * @param findUserByPhoneReqDTO
     * @return
     */
    Response<FindUserByPhoneRspDTO> findByPhone(FindUserByPhoneReqDTO findUserByPhoneReqDTO);

    /**
     * 更新用户密码
     * @param updateUserPasswordReqDTO
     * @return
     */
    Response<?> updatePassword(UpdateUserPasswordReqDTO updateUserPasswordReqDTO);

    /**
     * 根据用户iD查询用户信息
     * @param findUserByIdReqDTO
     * @return
     */
    Response<FindUserByIdRspDTO> findById(FindUserByIdReqDTO findUserByIdReqDTO);
}
